/****************************************************************************
File:			ED1SceneTODOS.cpp
Purpose:		Establish functions for our scene management lab. This will 
				include the drawing and sorting of our render objects
Author:			Student Name [student e-mail]
School:			Full Sail University
Last Modified:	July 22nd, 2009
*****************************************************************************/

#include "ED1Scene.h"

//Initializes our EDAppearance list. These are are also our Rendering Contexts
void ED1Scene::InitializeAppearances(void)
{

}

//Initializes our EDRenderShapes Master List, as well as our Transparent
//and Opaque Rendering Sets. These are our drawables.
void ED1Scene::InitializeRenderShapes(void)
{

}

//TODO:
//Clears transparent and opaque render sets
//Updates the positions of the render shapes in the master shape list
//frustum test with each render shape's sphere
//	If frustum test is true, check if appearance of render shape
//	is transparent or opaque and pass the renderset and shape into
//	the InsertionSort function below
void ED1Scene::UpdateSceneObjects()
{

}

//Draw sorted Opaque Objects
//Draw sorted Transparent objects
void ED1Scene::RenderSceneObjects()
{

}

//Set render states for Opaque Rendering and draw here
void ED1Scene::DrawOpaqueSet( std::vector<EDRenderShape *> & RenderSet)
{	

}

//set render states for Transparent Rendering and draw here
//Draw back face of an object first, and then the front face
void ED1Scene::DrawTransparentSet( std::vector<EDRenderShape *> & RenderSet)
{

}

//It's Insertion Sort. pShape is to be insterted onto the given RenderSet. 
//Iterate through each render shape in the set and compare distance
//Depending on whether you are doing transparent or opaque sorting will determine
//the sorting order. Use the stl::vector insert function to insert the shape in the 
//appropriate shape
bool ED1Scene::InsertionSort(std::vector<EDRenderShape *> & RenderSet, EDRenderShape * pShape, bool bLessThan)
{

	return true;
}